class Solution {
public:
    void rotate(vector<int>& nums, int k)
    {
       int len = nums.size();
       int i;

       k %= len;

       for(i = 0; i < len/2; i++)
       {
           swap(nums[i], nums[len - 1 - i]);
       }

       for(i = 0; i < k/2; i++)
       {
           swap(nums[i], nums[k - 1 - i]);
       }

       int j = 0;
       for(i = k; i < (len - k)/2 + k; i++)
       {
           swap(nums[i], nums[len - 1 - j++]);
       }   
    }
};